// 导入路由
const router = require('express').Router()

// 导入考试数据模型并获取exam类实例
const  Exam= require('../model/examModel');
const examModel = new Exam();

// 考试分类..................................................................
// 添加分类
// 地址：http://127.0.0.1:4000/api/exam/category_add
// 请求：POST
// 参数：text,icon
// 示例：http://127.0.0.1:4000/api/exam/category_add
// 响应数据格式：json格式
router.post('/category_add', async (req, res) => {
    //通过req.body 接收前端提交的参数
    let text = req.body.text;
    let icon = req.body.icon;
    // 执行数据库操作
    if (text) {
        await examModel.category_add(text,icon)
            .then(
                data => {
                    res.send(data);
                }
            )
            .catch(
                err => {
                    res.send(err);
                }
            )
    }
    else {
        res.send({
            coed: -1,
            msg: "缺少参数"
        })
    }
})

// 考试分类列表
// 地址：http://127.0.0.1:4000/api/exam/category_list
// 请求：GET
// 参数：无
// 示例：http://127.0.0.1:4000/api/exam/category_list
// 响应数据格式：json格式
router.get('/category_list', async (req, res) => {
    await examModel.category_list()
        .then(
            data => {
                res.send(data);
            },
            err => {
                res.send(err);
            }
        )
})


// 删除分类名称
// 地址：http://127.0.0.1:4000/api/exam/category_remove
// 请求：GET
// 参数：id
// 示例：http://127.0.0.1:4000/api/exam/category_remove?id=1
// 响应数据格式：json格式
router.get('/category_remove', async (req, res) => {
    let id = req.query.id;
    if (id) {
        await examModel.category_remove(id)
        .then(
            data => {
                res.send(data);
            },
            err => {
                res.send(err);
            }
        )
    }
    else{
        res.send({
            code:-1,
            msg:"缺少参数id"
        })
    }
})


// 修改考试分类名称
// 地址：http://127.0.0.1:4000/api/exam/category_modify
// 请求：POST
// 参数：id,text
// 示例：http://127.0.0.1:4000/api/exam/category_modify
// 响应数据格式：json格式
router.post('/category_modify', async (req, res) => {
    //通过req.body 接收前端提交的参数
    let text = req.body.text;
    let id = req.body.id;
    // 执行数据库操作
    if (id==undefined||text==undefined) {
        res.send({
            coed: -1,
            msg: "缺少参数"
        })
    }
    else {
        await examModel.category_modify(id,text)
        .then(
            data => {
                res.send(data);
            }
        )
        .catch(
            err => {
                res.send(err);
            }
        )
    }
})

// 试卷列表....................................................................
// 新增试卷
// 地址：http://127.0.0.1:4000/api/exam/exam_add
// 请求：POST
// 参数：id, text, name, total, passline, time
// 示例：http://127.0.0.1:4000/api/exam/exam_add
// 响应数据格式：json格式
router.post('/exam_add', async (req, res) => {
    //通过req.body 接收前端提交的参数
    let { id, text, name, total, passline, time } = req.body;
    // 执行数据库操作
    if (text&&id&&name&&total&&passline&&time) {
        await examModel.exam_add(id, text, name, total, passline, time)
            .then(
                data => {
                    res.send(data);
                }
            )
            .catch(
                err => {
                    res.send(err);
                }
            )
    }
    else {
        res.send({
            coed: -1,
            msg: "缺少参数"
        })
    }
})

// 获取试卷列表
// 地址：http://127.0.0.1:4000/api/exam/exam_list_all
// 请求：GET
// 参数：无
// 示例：http://127.0.0.1:4000/api/exam/exam_list_all
// 响应数据格式：json格式
router.get('/exam_list_all', async (req, res) => {
    await examModel.exam_list_all()
        .then(
            data => {
                res.send(data);
            },
            err => {
                res.send(err);
            }
        )
})

// 删除试卷
// 地址：http://127.0.0.1:4000/api/exam/exam_delete
// 请求方式:POST
// 参数:eid
router.post('/exam_delete',async(req,res)=>{
    let {eid} = req.body;
    await examModel.exam_delete(eid)
    .then(
        data=>{
            res.send(data)
        },
        err=>{
            res.send(err)
        }
    )
})

// 根据eid获取试卷信息
// 地址：http://127.0.0.1:4000/api/exam/exam_list
// 请求方式:GET
// 参数:eid
router.get('/exam_list',async(req,res)=>{
    let eid = req.query.eid;
    if(eid){
        await examModel.exam_list(eid)
        .then(
            data=>{
                res.send(data)
            },
            err=>{
                res.send(err)
            }
        )
    }
    else{
        res.send({
            code:-1,
            msg:"缺少参数"
        })
    }
})  

// 编辑试卷信息
// 地址：http://127.0.0.1:4000/api/exam/exam_edit
// 请求方式:POST
// 参数:eid,id,text,name,total,passline,time
router.post('/exam_edit',async(req,res)=>{
    let {eid,id,text,name,total,passline,time} =req.body;
    await examModel.exam_edit(eid,id,text,name,total,passline,time)
    .then(content=>{
        res.send(content)
    },err=>{
        res.send(err)
    })
})


// 题目部分.........................................................
// 新增题目列表
// 地址：http://127.0.0.1:4000/api/exam/topic_add
// 请求：POST
// 参数：eid, name,question, answer, score,option
// 示例：http://127.0.0.1:4000/api/exam/topic_add
// 响应数据格式：json格式
router.post('/topic_add', async (req, res) => {
    //通过req.body 接收前端提交的参数
    let { eid, name,question, answer, score,option } = req.body;
    // 执行数据库操作
    if (eid&&name&&question&&answer&&score&&option) {
        await examModel.topic_add(eid, name, question, answer, score, option)
            .then(
                data => {
                    res.send(data);
                }
            )
            .catch(
                err => {
                    res.send(err);
                }
            )
    }
    else {
        res.send({
            coed: -1,
            msg: "缺少参数"
        })
    }
})

// 获取题目列表
// 地址：http://127.0.0.1:4000/api/exam/topic_list
// 请求：GET
// 参数:eid
// 示例：http://127.0.0.1:4000/api/exam/topic_list
// 响应数据格式：json格式
router.get('/topic_list', async (req, res) => {
    let eid = req.query.eid;
    if(eid){
        // 根据试卷eid查询对应的eid
        await examModel.topic_list(eid)
        .then(
            data => {
                res.send(data);
            },
            err => {
                res.send(err);
            }
        )
    }
    else{
        res.send({
            code:-1,
            msg:"缺少参数"
        })
    }
})



// 把当前路由挂在系统对象上
module.exports = router